package com.xszx.controller;

import com.xszx.entity.User;
import com.xszx.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

@Controller
@SessionAttributes("user")
@RequestMapping("/login")
public class LoginController {

    @Autowired
    @Qualifier("loginServiceImpl")
    private LoginService loginService;

//    登录系统
    @RequestMapping("/login")
    @CrossOrigin(origins = "http://localhost:5173")
    @ResponseBody
    public Object login(@RequestBody User user, Model model, HttpServletRequest req){
    //        通过loginname和pwd获取user的信息
        User user1=loginService.login(user);
        if(user1!=null){
            return user1;
        }
        HttpSession session = req.getSession();
        session.setAttribute("user",user1);
        model.addAttribute("user",user1);
    //        如果user1为空，说明改角色并不存在，返回登录界面，如果存在，则判断rid
        return 0;
    }

//    校验登录名是否存在并且可以正常使用
    @RequestMapping("/getLoginName")
    @CrossOrigin(origins = "http://localhost:5173")
    @ResponseBody
    public Object getLoginName(String loginname){
//    在service中比较,获取i的值
        User user=loginService.getLoginName(loginname);
        if(user==null){
            return 1;
        }else {
            return 0;
        }
    }


//    注册系统
//    前端校验
//    1.用户名包括字母和数字,不大于10位
//    2.密码不小于6位
//    3.调用getLoginName方法校验登录名,不能注册时将按钮置空
//    4.输入两次密码,确保两次密码一致
    @RequestMapping("/enroll")
    @CrossOrigin(origins = "http://localhost:5173")
    @ResponseBody
    public int enroll(@RequestBody User user){
    //    在user添加信息
        loginService.enroll(user);
        return 1;
    //    返回登录界面
    }







}
